home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / GXPrinterDrivers.a < prev    next >
Text File  |  1996-05-01  |  37KB  |  822 lines

  1. ;
  2. ;    File:        GXPrinterDrivers.a
  3. ;
  4. ;    Contains:    This file defines data types and API functions for printer driver development.
  5. ;
  6. ;    Version:    Technology:    Quickdraw GX 1.1
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__GXPRINTERDRIVERS__') = 'UNDEFINED' THEN
  19. __GXPRINTERDRIVERS__ SET 1
  20.  
  21.     IF &TYPE('__SCALERTYPES__') = 'UNDEFINED' THEN
  22.     include 'ScalerTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__GXMESSAGES__') = 'UNDEFINED' THEN
  25.     include 'GXMessages.a'
  26.     ENDIF
  27.     IF &TYPE('__PRINTING__') = 'UNDEFINED' THEN
  28.     include 'Printing.a'
  29.     ENDIF
  30.     IF &TYPE('__GXPRINTING__') = 'UNDEFINED' THEN
  31.     include 'GXPrinting.a'
  32.     ENDIF
  33.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  34. ;
  35. ; ------------------------------------------------------------------------------
  36. ;
  37. ;                        Desktop Printer Constants and Types
  38. ;
  39. ;-------------------------------------------------------------------------------- 
  40. ;
  41. ;  Manual feed alert preferences structure for gxManualFeedAlertPrefsType desktop printer resource 
  42. gxManualFeedAlertPrefs    RECORD 0
  43. alertFlags                 ds.l    1                ; offset: $0 (0)        ;     Flags--first word is for driver's private use, the rest is predefined. 
  44. sizeof                     EQU *                    ; size:   $4 (4)
  45.                         ENDR
  46. ; typedef struct gxManualFeedAlertPrefs * gxManualFeedAlertPrefsPtr
  47.  
  48. ; typedef gxManualFeedAlertPrefsPtr *    gxManualFeedAlertPrefsHdl
  49.  
  50. ;  Constants for the alertFlags field of gxManualFeedAlertPrefs.
  51.  
  52. gxShowAlerts                    EQU        $00000001            ; Show alerts for this desktop printer. 
  53. gxAlertOnPaperChange            EQU        $00000002            ; ...only if the papertype changes. 
  54.  
  55. gxDefaultMFeedAlertSettings        EQU        $00000003
  56. ;  Driver output settings structure for desktop printer gxDriverOutputType resource 
  57. gxDriverOutputSettings    RECORD 0
  58. driverflags                 ds.l    1                ; offset: $0 (0)        ;     Flags -- for use by driver. 
  59. outputSettings             ds.l    1                ; offset: $4 (4)        ;     Flags -- predefined. 
  60. sizeof                     EQU *                    ; size:   $8 (8)
  61.                         ENDR
  62. ; typedef struct gxDriverOutputSettings * gxDriverOutputSettingsPtr
  63.  
  64. ; typedef gxDriverOutputSettingsPtr *    gxDriverOutputSettingsHdl
  65.  
  66. ;  Constants for the outputSettings field of gxDriverOutputSettings. 
  67.  
  68. gxCanConfigureTrays                EQU        $00000001            ; Desktop printer represents a device with a paper feed. 
  69. ;
  70. ; ------------------------------------------------------------------------------
  71. ;
  72. ;                        Printing Driver Constants and Types
  73. ;
  74. ;-------------------------------------------------------------------------------- 
  75. ;
  76.  
  77. gxInputTraysMenuItem            EQU        -1                    ; Menu item number for "Input Trays..." 
  78. ;  Buffering and IO preferences-- this structure mirrors the 'iobm' resource 
  79. gxIOPrefsRec            RECORD 0
  80. communicationsOptions     ds.l    1                ; offset: $0 (0)        ;  Standard or nonstandard I/O? 
  81. numBuffers                 ds.l    1                ; offset: $4 (4)        ;  Requested number of buffers for QDGX to create 
  82. bufferSize                 ds.l    1                ; offset: $8 (8)        ;  The size of each buffer 
  83. numReqBlocks             ds.l    1                ; offset: $C (12)        ;  The number of async I/O request blocks which will be needed 
  84. openCloseTimeout         ds.l    1                ; offset: $10 (16)        ;  The open/close timeout (in ticks) 
  85. readWriteTimeout         ds.l    1                ; offset: $14 (20)        ;  The read/write timeout (in ticks) 
  86. sizeof                     EQU *                    ; size:   $18 (24)
  87.                         ENDR
  88. ; typedef struct gxIOPrefsRec *            gxIOPrefsPtr
  89.  
  90. ; typedef gxIOPrefsPtr *                gxIOPrefsHdl
  91.  
  92. ;  Constants for the communicationsOptions field of IOPrefsRec. 
  93.  
  94. gxUseCustomIO                    EQU        $00000001            ; Driver uses a non-standard IO mechanism 
  95. ;  Information about writing to a file 
  96. gxPrintDestinationRec    RECORD 0
  97. printToFile                 ds.b    1                ; offset: $0 (0)        ;  True if output is to go to a file 
  98. padByte                     ds.b    1                ; offset: $1 (1)
  99. fSpec                     ds        FSSpec            ; offset: $2 (2)        ;  If going to a file, the FSSpec for the file 
  100. includeFonts             ds.b    1                ; offset: $48 (72)        ;  True if fonts are to be included 
  101. pad2                     ds.b    1                ; offset: $49 (73)
  102. fileFormat                 ds        Str31            ; offset: $4A (74)        ;  Format to write file 
  103. sizeof                     EQU *                    ; size:   $6A (106)
  104.                         ENDR
  105. ; typedef struct gxPrintDestinationRec * gxPrintDestinationPtr
  106.  
  107. ; typedef gxPrintDestinationPtr *        gxPrintDestinationHdl
  108.  
  109. ;  This structure is the content of each cell in the standard PACK LDEF 
  110. gxPortListRec            RECORD 0
  111. firstMarker                 ds.b    1                ; offset: $0 (0)        ;  Markers to indicate icon or non-icon version 
  112. secondMarker             ds.b    1                ; offset: $1 (1)        ;  if these are ~= and ~=, then the cell is an icon cell. 
  113. ;  Otherwise, it is assumed to be a standard text LDEF 
  114. ;  cell 
  115. iconSuiteHandle             ds.l    1                ; offset: $2 (2)        ;  The icon suite to draw for this cell 
  116. outputDriverName         ds.l    1                ; offset: $6 (6)        ;  Handle to the output driver name (for serial) 
  117. inputDriverName             ds.l    1                ; offset: $A (10)        ;  Handle to the input driver name (for serial) 
  118. iconName                 ds        Str255            ; offset: $E (14)        ;  Name to draw under the icon 
  119. sizeof                     EQU *                    ; size:   $10E (270)
  120.                         ENDR
  121. ; typedef struct gxPortListRec *        gxPortListPtr
  122.  
  123. ;
  124. ; ------------------------------------------------------------------------------
  125. ;
  126. ;                        Printing Driver Constants for resources in the desktop printer
  127. ;
  128. ;-------------------------------------------------------------------------------- 
  129. ;
  130.  
  131. gxDeviceCommunicationsID        EQU        0
  132. ;  ----------------------------------* 'prod' *---------------------------------- 
  133. ;
  134. ;      For PostScript devices, the device and version names of the device.
  135. ;      (0) product name is of type PString
  136. ;      (1) version is of type PString
  137. ;      (2) revision is of type PString
  138. ;      (3) vm available is of type long
  139. ;      (4) font stream type is of type scalerStreamTypeFlag
  140. ;      (5) language level is of type long
  141. ;
  142.  
  143. gxPostscriptProductInfoType        EQU        'prod'
  144. gxPostscriptProductNameID        EQU        0
  145. gxPostscriptVersionID            EQU        1
  146. gxPostscriptRevisionID            EQU        2
  147. gxPostscriptVMAvailableID        EQU        3
  148. gxPostscriptFontStreamTypeID    EQU        4
  149. gxPostscriptLanguageLevelID        EQU        5
  150. ;  PPD support definitions
  151.  
  152. gxPPDInformationTag                EQU        'ppda'                ; tag used for job collection
  153. gxPPDInformationTagID            EQU        -28672                ; ID for job collection tag
  154.  
  155. gxPPDInformationType            EQU        'ppda'                ; rsource type as stored in desktop printer
  156. gxPPDInformationResID            EQU        -27648                ; ID of rsource stored in desktop printer
  157. gxPPDFileInfoRec        RECORD 0
  158. dataOffset                 ds.l    1                ; offset: $0 (0)        ;  byte offset to beginning of ppd data
  159. dataLength                 ds.l    1                ; offset: $4 (4)        ;  length of ppd data
  160. reserved                 ds.l    1                ; offset: $8 (8)        ;  reserved
  161. aliasRecordSize             ds.l    1                ; offset: $C (12)        ;  size of alias record below
  162. ppdAlias                 ds.b    1                ; offset: $10 (16) <-- really an array of length one ;  the actual alias record data
  163.                          ORG 18
  164. sizeof                     EQU *                    ; size:   $12 (18)
  165.                         ENDR
  166. ; typedef struct gxPPDFileInfoRec *        gxPPDFileInfoPtr
  167.  
  168. ; typedef gxPPDFileInfoPtr *            gxPPDFileInfoHdl
  169.  
  170. ;
  171. ; ------------------------------------------------------------------------------
  172. ;
  173. ;                        Printing Driver Constants for status alerts
  174. ;
  175. ;-------------------------------------------------------------------------------- 
  176. ;
  177. ;  Structure passed in statusBuffer of StatusRecord for manual feed alert 
  178. gxManualFeedRecord        RECORD 0
  179. canAutoFeed                 ds.b    1                ; offset: $0 (0)        ;  True if driver can switch to auto feed 
  180. pad1                     ds.b    1                ; offset: $1 (1)
  181. paperTypeName             ds        Str31            ; offset: $2 (2)        ;  Name of paperType to feed manually 
  182. sizeof                     EQU *                    ; size:   $22 (34)
  183.                         ENDR
  184. ;  Structure passed in statusBuffer of StatusRecord for out of paper alert 
  185. gxOutOfPaperRecord        RECORD 0
  186. paperTypeName             ds        Str31            ; offset: $0 (0)        ;  Name of printing document 
  187. sizeof                     EQU *                    ; size:   $20 (32)
  188.                         ENDR
  189. ;  The DITL id for the auto feed button in the manual feed alert 
  190.  
  191. gxAutoFeedButtonId                EQU        3
  192. ;  Status resource id for the alerts 
  193.  
  194. gxUnivAlertStatusResourceId        EQU        -28508
  195. ;  Status resource indices for alerts 
  196.  
  197. gxUnivSetTrayIndex                EQU        0
  198. gxUnivManualFeedIndex            EQU        2
  199. gxUnivFailToPrintIndex            EQU        3
  200. gxUnivPaperJamIndex                EQU        4
  201. gxUnivOutOfPaperIndex            EQU        5
  202. gxUnivNoPaperTrayIndex            EQU        6
  203. gxUnivPrinterReadyIndex            EQU        7
  204. gxUnivAlertBeforeIndex            EQU        9
  205. gxUnivAlertAfterIndex            EQU        10
  206. ;  Allocation sizes for status buffers needed for automatic alerts 
  207.  
  208. gxDefaultStatusBufferSize        EQU        10
  209. gxManualFeedStatusBufferSize    EQU        34
  210. gxOutOfPaperStatusBufferSize    EQU        42
  211. ;
  212. ; ------------------------------------------------------------------------------
  213. ;
  214. ;                                Old Application Support
  215. ;
  216. ;-------------------------------------------------------------------------------- 
  217. ;
  218. ;  The format of a 'cust' resource  
  219. gxCustomizationRec        RECORD 0
  220. horizontalResolution     ds.w    1                ; offset: $0 (0)        ;  Horizontal res (integral part) 
  221. verticalResolution         ds.w    1                ; offset: $2 (2)        ;  Vertical res (integral part) 
  222. upDriverType             ds.w    1                ; offset: $4 (4)        ;  "upDriver" emulation type 
  223. patternStretch             ds        Point            ; offset: $6 (6)        ;  Pattern stretch factor 
  224. translatorSettings         ds.w    1                ; offset: $A (10)        ;  Translator settings to use 
  225. sizeof                     EQU *                    ; size:   $C (12)
  226.                         ENDR
  227. ; typedef struct gxCustomizationRec *    gxCustomizationPtr
  228.  
  229. ; typedef gxCustomizationPtr *            gxCustomizationHdl
  230.  
  231. ;  The format of a 'resl' resource 
  232. gxResolutionRec            RECORD 0
  233. rangeType                 ds.w    1                ; offset: $0 (0)        ;  Always 1 
  234. xMinimumResolution         ds.w    1                ; offset: $2 (2)        ;  Min X resolution available 
  235. xMaximumResolution         ds.w    1                ; offset: $4 (4)        ;  Max X resolution available 
  236. yMinimumResolution         ds.w    1                ; offset: $6 (6)        ;  Min Y resolution available 
  237. yMaximumResolution         ds.w    1                ; offset: $8 (8)        ;  Max Y resolution available 
  238. resolutionCount             ds.w    1                ; offset: $A (10)        ;  Number of resolutions 
  239. resolutions                 ds        Point            ; offset: $C (12) <-- really an array of length one ;  Array of resolutions 
  240. sizeof                     EQU *                    ; size:   $10 (16)
  241.                         ENDR
  242. ; typedef struct gxResolutionRec *        gxResolutionPtr
  243.  
  244. ; typedef gxResolutionPtr *                gxResolutionHdl
  245.  
  246. ;
  247. ;
  248. ;        Constants for the "universal" print record.
  249. ;
  250. ;
  251. ;  Constant for version number in universal print record 
  252.  
  253. gxPrintRecordVersion            EQU        8
  254. ;  Constants for feed field in universal print record 
  255.  
  256. gxAutoFeed                        EQU        0
  257. gxManualFeed                    EQU        1
  258. ;  Constants for options field in universal print record 
  259.  
  260. gxPreciseBitmap                    EQU        $0001                ; Tall adjusted (IW), precise bitmap (LW, SC) 
  261. gxBiggerPages                    EQU        $0002                ; No gaps (IW), larger print area (LW) 
  262. gxGraphicSmoothing                EQU        $0004                ; Graphic smoothing (LW) 
  263. gxTextSmoothing                    EQU        $0008                ; Text smoothing (SC) 
  264. gxFontSubstitution                EQU        $0010                ; Font substitution 
  265. gxInvertPage                    EQU        $0020                ; B/W invert image 
  266. gxFlipPageHoriz                    EQU        $0040                ; Flip horizontal 
  267. gxFlipPageVert                    EQU        $0080                ; Flip vertical 
  268. gxColorMode                        EQU        $0100                ; Color printing 
  269. gxBidirectional                    EQU        $0200                ; Bidirectional printing 
  270. gxUserFlag0                        EQU        $0400                ; User flag 0 
  271. gxUserFlag1                        EQU        $0800                ; User flag 1 
  272. gxUserFlag2                        EQU        $1000                ; User flag 2 
  273. gxReservedFlag0                    EQU        $2000                ; Reserved flag 0 
  274. gxReservedFlag1                    EQU        $4000                ; Reserved flag 1 
  275. gxReservedFlag2                    EQU        $8000                ; Reserved flag 2 
  276. ;  Constants for orientation field in universal print record 
  277.  
  278. gxPortraitOrientation            EQU        0
  279. gxLandscapeOrientation            EQU        1
  280. gxAltPortraitOrientation        EQU        2
  281. gxAltLandscapeOrientation        EQU        3
  282. ;  Constants for qualityMode field in universal print record 
  283.  
  284. gxBestQuality                    EQU        0
  285. gxFasterQuality                    EQU        1
  286. gxDraftQuality                    EQU        2
  287. ;  Constants for firstTray and remainingTray fields in universal print record 
  288.  
  289. gxFirstTray                        EQU        0
  290. gxSecondTray                    EQU        1
  291. gxThirdTray                        EQU        2
  292. ;  Constants for coverPage field in universal print record 
  293.  
  294. gxNoCoverPage                    EQU        0
  295. gxFirstPageCover                EQU        1
  296. gxLastPageCover                    EQU        2
  297. ;  Constants for headMotion field in universal print record 
  298.  
  299. gxUnidirectionalMotion            EQU        0
  300. gxBidirectionalMotion            EQU        1
  301. ;  Constants for saveFile field in universal print record 
  302.  
  303. gxNoFile                        EQU        0
  304. gxPostScriptFile                EQU        1
  305.     ENDIF
  306.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  307. ;  The format of the "universal" print record 
  308. gxUniversalPrintRecord    RECORD 0
  309. printRecordVersion         ds.w    1                ; offset: $0 (0)        ;  Print record version 
  310. ;  prInfo subrecord 
  311. appDev                     ds.w    1                ; offset: $2 (2)        ;  Device kind, always 0 
  312. appVRes                     ds.w    1                ; offset: $4 (4)        ;  Application vertical resolution 
  313. appHRes                     ds.w    1                ; offset: $6 (6)        ;  Application horizontal resolution 
  314. appPage                     ds        Rect            ; offset: $8 (8)        ;  Page size, in application resolution 
  315. appPaper                 ds        Rect            ; offset: $10 (16)        ;  Paper rectangle [offset from rPage] 
  316. ;  prStl subrecord 
  317. devType                     ds.w    1                ; offset: $18 (24)        ;  Device type, always 0xA900 (was wDev) 
  318. pageV                     ds.w    1                ; offset: $1A (26)        ;  Page height in 120ths of an inch 
  319. pageH                     ds.w    1                ; offset: $1C (28)        ;  Page width in 120ths of an inch 
  320. fillByte                 ds.b    1                ; offset: $1E (30)        ;  Page calculation mode 
  321. feed                     ds.b    1                ; offset: $1F (31)        ;  Feed mode 
  322. ;  prInfoPT subrecord 
  323. devKind                     ds.w    1                ; offset: $20 (32)        ;  Device kind, always 0 
  324. devVRes                     ds.w    1                ; offset: $22 (34)        ;  Device vertical resolution 
  325. devHRes                     ds.w    1                ; offset: $24 (36)        ;  Device horizontal resolution 
  326. devPage                     ds        Rect            ; offset: $26 (38)        ;  Device page size 
  327. ;  prXInfo subrecord 
  328. actualCopies             ds.w    1                ; offset: $2E (46)        ;  Actual number of copies for this job 
  329. options                     ds.w    1                ; offset: $30 (48)        ;  Options for this device 
  330. reduction                 ds.w    1                ; offset: $32 (50)        ;  Reduce/enlarge factor 
  331. orientation                 ds.b    1                ; offset: $34 (52)        ;  Orientation of paper ( 0=portrait, 1=landscape ) 
  332. ;  Clusters and PopUps 
  333. qualityMode                 ds.b    1                ; offset: $35 (53)        ;  Quality mode 
  334. coverPage                 ds.b    1                ; offset: $36 (54)        ;  Cover page 
  335. firstTray                 ds.b    1                ; offset: $37 (55)        ;  First feed tray 
  336. remainingTray             ds.b    1                ; offset: $38 (56)        ;  Remaining feed tray 
  337. headMotion                 ds.b    1                ; offset: $39 (57)        ;  Head motion 
  338. saveFile                 ds.b    1                ; offset: $3A (58)        ;  Save file 
  339. userCluster1             ds.b    1                ; offset: $3B (59)        ;  Three clusters left over 
  340. userCluster2             ds.b    1                ; offset: $3C (60)
  341. userCluster3             ds.b    1                ; offset: $3D (61)
  342. ;  prJob subrecord 
  343. firstPage                 ds.w    1                ; offset: $3E (62)        ;  First page 
  344. lastPage                 ds.w    1                ; offset: $40 (64)        ;  Last page 
  345. copies                     ds.w    1                ; offset: $42 (66)        ;  Number of copies, always 1 
  346. reserved1                 ds.b    1                ; offset: $44 (68)        ;  Always true, unused 
  347. reserved2                 ds.b    1                ; offset: $45 (69)        ;  Always true, unused 
  348. pIdleProc                 ds.l    1                ; offset: $46 (70)        ;  Idle proc 
  349. pFileName                 ds.l    1                ; offset: $4A (74)        ;  Spool file name pointer 
  350. fileVol                     ds.w    1                ; offset: $4E (78)        ;  Spool file vRefNum 
  351. fileVers                 ds.b    1                ; offset: $50 (80)        ;  File version, must be 0 
  352. reserved3                 ds.b    1                ; offset: $51 (81)        ;  Always 0 
  353. printX                     ds.w    19                ; offset: $52 (82)        ;  Internal use 
  354. sizeof                     EQU *                    ; size:   $78 (120)
  355.                         ENDR
  356. ; typedef struct gxUniversalPrintRecord * gxUniversalPrintRecordPtr
  357.  
  358. ; typedef gxUniversalPrintRecordPtr *    gxUniversalPrintRecordHdl
  359.  
  360.     ENDIF
  361.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  362. ;
  363. ; ------------------------------------------------------------------------------
  364. ;
  365. ;                            Compatibility Printing Messages
  366. ;
  367. ;-------------------------------------------------------------------------------- 
  368. ;
  369. ;
  370. ; ------------------------------------------------------------------------------
  371. ;
  372. ;                        Raster Driver Contants and Types
  373. ;
  374. ;-------------------------------------------------------------------------------- 
  375. ;
  376. ; typedef long                             gxRasterPlaneOptions
  377.  
  378. ;  Input structure for setting up the offscreen 
  379. gxPlaneSetupRec            RECORD 0
  380. planeOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the offscreen package 
  381. planeHalftone             ds        gxHalftone        ; offset: $4 (4)        ;  OPTIONAL: halftone structure for this plane 
  382. planeSpace                 ds.l    1                ; offset: $38 (56)        ;  OPTIONAL: noSpace will get the graphics default 
  383. planeSet                 ds.l    1                ; offset: $3C (60)        ;  OPTIONAL: NIL gets the default 
  384. planeProfile             ds.l    1                ; offset: $40 (64)        ;  OPTIONAL: NIL gets no matching 
  385. sizeof                     EQU *                    ; size:   $44 (68)
  386.                         ENDR
  387. ;  Constants for planeOptions field in gxPlaneSetupRec 
  388.  
  389. gxDefaultOffscreen                EQU        $00000000            ; Default value - bits are allocated for the client, halftoning takes place 
  390. gxDontSetHalftone                EQU        $00000001            ; Don't call SetViewPortHalftone 
  391. gxDotTypeIsDitherLevel            EQU        $00000002            ; Call SetViewPortDither using the dotType as the level 
  392. gxOffscreenSetupRec        RECORD 0
  393. width                     ds.w    1                ; offset: $0 (0)        ;  Width in pixels 
  394. minHeight                 ds.w    1                ; offset: $2 (2)        ;  Minimum height in pixels - actual height returned here 
  395. maxHeight                 ds.w    1                ; offset: $4 (4)        ;  Maximum height in pixels 
  396. ramPercentage             ds.l    1                ; offset: $6 (6)        ;  Maximum percentage of RAM to take 
  397. ramSlop                     ds.l    1                ; offset: $A (10)        ;  Amount of RAM to be sure to leave 
  398. depth                     ds.w    1                ; offset: $E (14)        ;  Depths in bits of each plane 
  399. vpMapping                 ds        gxMapping        ; offset: $10 (16)        ;  Mapping to assign to offscreen viewPorts 
  400. vdMapping                 ds        gxMapping        ; offset: $34 (52)        ;  Mapping to assign to offscreen viewDevices 
  401. planes                     ds.w    1                ; offset: $58 (88)        ;  Number of planes to allocate of depth bits each (can be more than 4) 
  402. planeSetup                 ds.b    4 * gxPlaneSetupRec.sizeof ; offset: $5A (90) ;  Parameters for each plane, 4 is provided because it is most handy for writers of devices 
  403. sizeof                     EQU *                    ; size:   $16A (362)
  404.                         ENDR
  405. ;  The format of one plane in the offscreen planar area 
  406. gxOffscreenPlaneRec        RECORD 0
  407. theViewPort                 ds.l    1                ; offset: $0 (0)        ;  viewPort for the offscreen 
  408. theDevice                 ds.l    1                ; offset: $4 (4)        ;  viewDevice for the offscreen 
  409. theViewGroup             ds.l    1                ; offset: $8 (8)        ;  The viewGroup that they share 
  410. theBitmap                 ds.l    1                ; offset: $C (12)        ;  The offscreen bitmap shape 
  411. theBits                     ds        gxBitmap        ; offset: $10 (16)        ;  The bits of the offscreen 
  412. sizeof                     EQU *                    ; size:   $30 (48)
  413.                         ENDR
  414. ;  The format of an entire offscreen area 
  415. gxOffscreenRec            RECORD 0
  416. numberOfPlanes             ds.w    1                ; offset: $0 (0)        ;  Number of planes we have 
  417. offscreenStorage         ds.l    1                ; offset: $2 (2)        ;  Handle containing the bitmaps image data 
  418. thePlanes                 ds        gxOffscreenPlaneRec ; offset: $6 (6) <-- really an array of length one ;  Planes to draw in 
  419. sizeof                     EQU *                    ; size:   $36 (54)
  420.                         ENDR
  421. ; typedef struct gxOffscreenRec *        gxOffscreenPtr
  422.  
  423. ; typedef gxOffscreenPtr *                gxOffscreenHdl
  424.  
  425. ; typedef long                             gxRasterRenderOptions
  426.  
  427. ;  Structure that mirrors 'rdip' resource. 
  428. gxRasterPrefsRec        RECORD 0
  429. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  430. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  Horizontal resolution to image at 
  431. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  Vertical resolution to image at 
  432. minBandSize                 ds.w    1                ; offset: $C (12)        ;  Minimum band size to use (in pixels) 
  433. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  Maximum band size to use (in pixels), 0 == entire page 
  434. ramPercentage             ds.l    1                ; offset: $10 (16)        ;  Maximum percentage of RAM to take 
  435. ramSlop                     ds.l    1                ; offset: $14 (20)        ;  Amount of RAM to be sure to leave 
  436. depth                     ds.w    1                ; offset: $18 (24)        ;  Depth in pixels (PER PLANE!) 
  437. numPlanes                 ds.w    1                ; offset: $1A (26)        ;  Number of planes to render 
  438. planeSetup                 ds        gxPlaneSetupRec ; offset: $1C (28) <-- really an array of length one ;  One for each plane 
  439. sizeof                     EQU *                    ; size:   $60 (96)
  440.                         ENDR
  441. ;  Constants for renderOptions field in gxRasterPrefsRec. 
  442.  
  443. gxDefaultRaster                    EQU        $00000000            ; Default raster options 
  444. gxDontResolveTransferModes        EQU        $00000001            ; 0=Resolve, 1=Don't Resolve 
  445. gxRenderInReverse                EQU        $00000002            ; Traverse image in reverse order 
  446. gxOnePlaneAtATime                EQU        $00000004            ; Render each plane separately 
  447. gxSendAllBands                    EQU        $00000008            ; Send even empty bands 
  448. ; typedef struct gxRasterPrefsRec *        gxRasterPrefsPtr
  449.  
  450. ; typedef gxRasterPrefsPtr *            gxRasterPrefsHdl
  451.  
  452. ; typedef long                             gxRasterPackageOptions
  453.  
  454. ;  Structure that mirrors 'rpck' resource. 
  455. gxRasterPackageRec        RECORD 0
  456. bufferSize                 ds.l    1                ; offset: $0 (0)        ;  Buffer size for packaging (>= maximum head pass size) 
  457. colorPasses                 ds.w    1                ; offset: $4 (4)        ;  1 (b/w) or 4 (CMYK) is typical 
  458. headHeight                 ds.w    1                ; offset: $6 (6)        ;  Printhead height in pixels 
  459. numberPasses             ds.w    1                ; offset: $8 (8)        ;  Number of head passes it takes to == iHeadHeight 
  460. passOffset                 ds.w    1                ; offset: $A (10)        ;  Offset between passes, in pixels 
  461. packageOptions             ds.l    1                ; offset: $C (12)        ;  Packaging options 
  462. sizeof                     EQU *                    ; size:   $10 (16)
  463.                         ENDR
  464. ; typedef struct gxRasterPackageRec *    gxRasterPackagePtr
  465.  
  466. ; typedef gxRasterPackagePtr *            gxRasterPackageHdl
  467.  
  468. ;  Constants for packageOptions field in gxRasterPackageRec. 
  469.  
  470. gxSendAllColors                    EQU        $00000001            ; Send even clean bands through 
  471. gxInterlaceColor                EQU        $00000002            ; Ribbon contamination is a concern 
  472. gxOverlayColor                    EQU        $00000004            ; Color printer without a ribbon problem 
  473. gxUseColor                        EQU        $00000006            ; This is a color printer 
  474. ;  Structure for RasterPackageBitmap message 
  475. gxRasterPackageBitmapRec RECORD 0
  476. bitmapToPackage             ds.l    1                ; offset: $0 (0)        ;  Bitmap containing the data to package 
  477. startRaster                 ds.w    1                ; offset: $4 (4)        ;  Raster to begin the packaging from 
  478. colorBand                 ds.w    1                ; offset: $6 (6)        ;  For which color pass this is a packaging request 
  479. isBandDirty                 ds.b    1                ; offset: $8 (8)        ;  Whether there are any dirty bits in this band 
  480. padByte                     ds.b    1                ; offset: $9 (9)
  481. dirtyRect                 ds        Rect            ; offset: $A (10)        ;  Which bits are dirty 
  482. sizeof                     EQU *                    ; size:   $12 (18)
  483.                         ENDR
  484. ;  Structure of number record in gxRasterPackageControlsRec 
  485. gxStandardNumberRec        RECORD 0
  486. numberType                 ds.w    1                ; offset: $0 (0)        ;  Type of numberic output desired 
  487. minWidth                 ds.w    1                ; offset: $2 (2)        ;  Minimum output width of the number 
  488. padChar                     ds.b    1                ; offset: $4 (4)        ;  Pad character for numbers shorter than the minWidth 
  489. padChar2                 ds.b    1                ; offset: $5 (5)
  490. startString                 ds        Str31            ; offset: $6 (6)        ;  Prefix string 
  491. endString                 ds        Str31            ; offset: $26 (38)        ;  Postfix string 
  492. sizeof                     EQU *                    ; size:   $46 (70)
  493.                         ENDR
  494. ; typedef struct gxStandardNumberRec *    gxStandardNumberPtr
  495.  
  496. ;  Structure that mirrors 'ropt' resource 
  497. gxRasterPackageControlsRec RECORD 0
  498. startPageStringID         ds.w    1                ; offset: $0 (0)        ;  'wstr' to send to the device at start of page 
  499. formFeedStringID         ds.w    1                ; offset: $2 (2)        ;  'wstr' to send to the device to cause a form feed 
  500. forwardMax                 ds.w    1                ; offset: $4 (4)        ;  Line feed strings 
  501. forwardLineFeed             ds        gxStandardNumberRec ; offset: $6 (6)    ;  Number record for forward line feed 
  502. reverseMax                 ds.w    1                ; offset: $4C (76)        ;  Max number of reverse line feeds device can do 
  503. reverseLineFeed             ds        gxStandardNumberRec ; offset: $4E (78) ;  Number record for forward line feed 
  504. sizeof                     EQU *                    ; size:   $94 (148)
  505.                         ENDR
  506. ; typedef struct gxRasterPackageControlsRec * gxRasterPackageControlsPtr
  507.  
  508. ; typedef gxRasterPackageControlsPtr *    gxRasterPackageControlsHdl
  509.  
  510. ;  Raster imaging system imageData structure 
  511. gxRasterImageDataRec    RECORD 0
  512. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options for the raster imaging system 
  513. hImageRes                 ds.l    1                ; offset: $4 (4)        ;  horizontal resolution to image at 
  514. vImageRes                 ds.l    1                ; offset: $8 (8)        ;  vertical resolution to image at 
  515. minBandSize                 ds.w    1                ; offset: $C (12)        ;  smallest band that makes sense for this device 
  516. maxBandSize                 ds.w    1                ; offset: $E (14)        ;  biggest band that makes sense, or 0 for "full page" 
  517. pageSize                 ds        gxRectangle        ; offset: $10 (16)        ;  size of page for device 
  518. ;  Values used within the RasterDataIn message 
  519. currentYPos                 ds.w    1                ; offset: $20 (32)        ;  Current position moving down the page 
  520. packagingInfo             ds        gxRasterPackageRec ; offset: $22 (34)    ;  Raster packaging record 
  521. ;  Values used within the remaining messages 
  522. optionsValid             ds.b    1                ; offset: $32 (50)        ;  Were options specified by the driver? 
  523. padByte                     ds.b    1                ; offset: $33 (51)
  524. packageControls             ds        gxRasterPackageControlsRec ; offset: $34 (52) ;  Options for the packaging messages 
  525. theSetup                 ds        gxOffscreenSetupRec ; offset: $C8 (200) ;  setup for the offscreen code, variable length componant 
  526. sizeof                     EQU *                    ; size:   $232 (562)
  527.                         ENDR
  528. ; typedef struct gxRasterImageDataRec *    gxRasterImageDataPtr
  529.  
  530. ; typedef gxRasterImageDataPtr *        gxRasterImageDataHdl
  531.  
  532. ;
  533. ; ------------------------------------------------------------------------------
  534. ;
  535. ;                                Raster Driver Imaging Messages
  536. ;
  537. ;-------------------------------------------------------------------------------- 
  538. ;
  539. ;
  540. ; ------------------------------------------------------------------------------
  541. ;
  542. ;                        Vector Driver Contants and Types
  543. ;
  544. ;-------------------------------------------------------------------------------- 
  545. ;
  546. ;  Vector device halftone component record 
  547. gxVHalftoneCompRec        RECORD 0
  548. angle                     ds.l    1                ; offset: $0 (0)        ;  Angle to halftone at. Must be 0, 90, 45 or 135 
  549. penIndex                 ds.l    1                ; offset: $4 (4)        ;  index of the pen to draw this component with 
  550. sizeof                     EQU *                    ; size:   $8 (8)
  551.                         ENDR
  552. ;  Vector device halftone record 
  553. gxVHalftoneRec            RECORD 0
  554. halftoneSpace             ds.l    1                ; offset: $0 (0)
  555. halftoneComps             ds.b    4 * gxVHalftoneCompRec.sizeof ; offset: $4 (4) ;  Info for each color component 
  556. penIndexForBW             ds.l    1                ; offset: $24 (36)        ;  Pen index to draw one bit deep or black and white bitmap with 
  557. sizeof                     EQU *                    ; size:   $28 (40)
  558.                         ENDR
  559. ;  Vector shape rendering information 
  560. ; typedef long                             gxVectorShapeOptions
  561.  
  562. gxVectorShapeDataRec    RECORD 0
  563. shapeOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control shape handling 
  564. maxPolyPoints             ds.l    1                ; offset: $4 (4)        ;  Maximum number of polygon points that device can support 
  565. shapeError                 ds.l    1                ; offset: $8 (8)        ;  Defines allowed deviation from the original shape 
  566. textSize                 ds.l    1                ; offset: $C (12)        ;  Text above this size is filled; text below this size is outlined 
  567. frameSize                 ds.l    1                ; offset: $10 (16)        ;  Frame's smaller than this -> shape stroked; frame's larger -> shape is filled 
  568. sizeof                     EQU *                    ; size:   $14 (20)
  569.                         ENDR
  570. ;  Constants for shapeOptions field in gxVectorShapeDataRec. 
  571.  
  572. gxUnidirectionalFill            EQU        $00000001            ; Generate scanlines in one direction only.  Useful for transparencies 
  573. gxAlsoOutlineFilledShape        EQU        $00000002            ; Turn on this bit to also outline solid filled shapes 
  574. ;  Vector device rendering information 
  575. ; typedef long                             gxVectorRenderOptions
  576.  
  577. ;  Vector imaging system imageData structure 
  578. gxVectorImageDataRec    RECORD 0
  579. renderOptions             ds.l    1                ; offset: $0 (0)        ;  Options to control rendering: color sort, clipping, etc. 
  580. devRes                     ds.l    1                ; offset: $4 (4)        ;  Device resolution 
  581. devTransform             ds.l    1                ; offset: $8 (8)        ;  Mapping, clip and halftoning information for colored bitmaps 
  582. clrSet                     ds.l    1                ; offset: $C (12)        ;  Entire set of colors; usually indexed color space for pen plotters 
  583. bgColor                     ds        gxColor            ; offset: $10 (16)        ;  The background color in the color space specified by the clrSpace field 
  584. halftoneInfo             ds        gxVHalftoneRec ; offset: $20 (32)        ;  Defines halftone information for color bitmaps 
  585. hPenTable                 ds.l    1                ; offset: $48 (72)        ;  Complete list of pens along with their pen positions and thickness 
  586. pageRect                 ds        gxRectangle        ; offset: $4C (76)        ;  Page dimensions 
  587. shapeData                 ds        gxVectorShapeDataRec ; offset: $5C (92) ;  Information on how to render a shape 
  588. sizeof                     EQU *                    ; size:   $70 (112)
  589.                         ENDR
  590. ; typedef struct gxVectorImageDataRec *    gxVectorImageDataPtr
  591.  
  592. ; typedef gxVectorImageDataPtr *        gxVectorImageDataHdl
  593.  
  594. ;  Constants for renderOptions field in gxVectorImageDataRec. 
  595.  
  596. gxColorSort                        EQU        $00000001            ; Set for pen plotters 
  597. gxATransferMode                    EQU        $00000002            ; Set if transfer modes need to be resolved 
  598. gxNoOverlap                        EQU        $00000004            ; Set if non-overlapping output is desired
  599. gxAColorBitmap                    EQU        $00000008            ; Set if color bitmap output is desired 
  600. gxSortbyPenPos                    EQU        $00000010            ; Set if shapes are to be drawn in the order of the pen index 
  601.                                                             ; in the pen table. NOTE: this is not the pen position in the carousel 
  602. gxPenLessPlotter                EQU        $00000020            ; Indicates raster printer/plotter 
  603. gxCutterPlotter                    EQU        $00000040            ; Indicates cutter 
  604. gxNoBackGround                    EQU        $00000080            ; Set if shapes that map to the background color should not be sent to driver 
  605. ;
  606. ; ------------------------------------------------------------------------------
  607. ;
  608. ;                                Vector Driver Imaging Messages
  609. ;
  610. ;-------------------------------------------------------------------------------- 
  611. ;
  612. ;
  613. ; ------------------------------------------------------------------------------
  614. ;
  615. ;                            PostScript Driver Contants and Types
  616. ;
  617. ;-------------------------------------------------------------------------------- 
  618. ;
  619.  
  620. gxPostSynonym                    EQU        'post'
  621. ;  PostScript glyphs record 
  622. gxPrinterGlyphsRec        RECORD 0
  623. theFont                     ds.l    1                ; offset: $0 (0)        ;   ---> Font reference 
  624. nGlyphs                     ds.l    1                ; offset: $4 (4)        ;   ---> Number of glyphs in the font 
  625. platform                 ds.l    1                ; offset: $8 (8)        ;  <---  How printer font is encoded 
  626. script                     ds.l    1                ; offset: $C (12)        ;  <---  Script if platform != glyphPlatform 
  627. language                 ds.l    1                ; offset: $10 (16)        ;  <---  Language if platform != glyphPlatform 
  628. vmUsage                     ds.l    1                ; offset: $14 (20)        ;  <---  How much PostScript VM font uses 
  629. ;  Size of this array is long-alligned(nGlyphs) 
  630. glyphBits                 ds.l    1                ; offset: $18 (24) <-- really an array of length one ;  <---  Bit array of which system glyphs are in printer 
  631. sizeof                     EQU *                    ; size:   $1C (28)
  632.                         ENDR
  633. ;  PostScript device rendering information 
  634. ; typedef long                             gxPostScriptRenderOptions
  635.  
  636. gxPostScriptImageDataRec RECORD 0
  637. languageLevel             ds.w    1                ; offset: $0 (0)        ;  PostScript language level 
  638. devCSpace                 ds.l    1                ; offset: $2 (2)        ;  The printer's color space 
  639. devCProfile                 ds.l    1                ; offset: $6 (6)        ;  The printer's color profile for matching 
  640. renderOptions             ds.l    1                ; offset: $A (10)        ;  Options for the imaging system 
  641. pathLimit                 ds.l    1                ; offset: $E (14)        ;  Maximum path size 
  642. gsaveLimit                 ds.w    1                ; offset: $12 (18)        ;  Maximum number of gsaves allowed 
  643. opStackLimit             ds.w    1                ; offset: $14 (20)        ;  Operand stack limit 
  644. fontType                 ds.l    1                ; offset: $16 (22)        ;  These are the font types that the printer supports  
  645. printerVM                 ds.l    1                ; offset: $1A (26)        ;  How much memory is in the printer 
  646. reserved0                 ds.l    1                ; offset: $1E (30)
  647. sizeof                     EQU *                    ; size:   $22 (34)
  648.                         ENDR
  649. ; typedef struct gxPostScriptImageDataRec * gxPostScriptImageDataPtr
  650.  
  651. ; typedef gxPostScriptImageDataPtr *    gxPostScriptImageDataHdl
  652.  
  653. ;  Constants for renderOptions field in gxPostScriptImageDataRec. 
  654.  
  655. gxNeedsHexOption                EQU        $00000001            ; Convert all binary data to hex 
  656. gxNeedsCommentsOption            EQU        $00000002            ; Issue PostScript comments 
  657. gxBoundingBoxesOption            EQU        $00000004            ; Calculate the values for 
  658. gxPortablePostScriptOption        EQU        $00000008            ; Generate portable PostScript 
  659. gxTextClipsToPathOption            EQU        $00000010            ; Convert all clips that are composed of text to path shapes 
  660. gxFlattenClipPathOption            EQU        $00000020            ; Convert all clips that are path shapes to polygons (helps better control point limit) 
  661. gxUseCharpath1Option            EQU        $00000040            ; (ignored if text clips are converted to paths)  When the clip is text,  
  662.                                                             ; Do it one glyph at a time, redrawing the main shape each time 
  663. gxUseLevel2ColorOption            EQU        $00000080            ; When printing to level-2 use level-2 device independent color 
  664. gxNoEPSIllegalOperators            EQU        $00000100            ; Don't use any operators prohibited by the Encapsulated PostScript File Format V3.0 
  665. gxEPSTargetOption                EQU        $00000106            ; PostScript intended for EPS Use. 
  666. ;  Structure for gxPostScriptGetProcSetList / gxPostScriptDownLoadProcSetList 
  667. gxProcSetListRec        RECORD 0
  668. clientid                 ds.l    1                ; offset: $0 (0)
  669. controlType                 ds.l    1                ; offset: $4 (4)        ;  The driver will call FetchTaggedData on each of these resources 
  670. controlid                 ds.w    1                ; offset: $8 (8)
  671. dataType                 ds.l    1                ; offset: $A (10)
  672. reserved0                 ds.l    1                ; offset: $E (14)
  673. sizeof                     EQU *                    ; size:   $12 (18)
  674.                         ENDR
  675. ; typedef struct gxProcSetListRec *        gxProcSetListPtr
  676.  
  677. ; typedef gxProcSetListPtr *            gxProcSetListHdl
  678.  
  679. ;  Possible results of querying printer (returned by gxPostScriptQueryPrinter message) 
  680.  
  681. gxPrinterOK                        EQU        0
  682. gxIntializePrinter                EQU        1
  683. gxFilePrinting                    EQU        2
  684. gxResetPrinter                    EQU        128
  685. ;
  686. ; ------------------------------------------------------------------------------
  687. ;
  688. ;                                PostScript Driver Imaging Messages
  689. ;
  690. ;-------------------------------------------------------------------------------- 
  691. ;
  692. ;  Device control messages 
  693. ;  Device communication messages 
  694. ;  Proc set management messages 
  695. ;  Font management messages 
  696. ;  Document structuring and formatting messages 
  697. ;  Page structuring and formatting messages 
  698. ;  Shape imaging messages 
  699. ;
  700. ; ------------------------------------------------------------------------------
  701. ;
  702. ;                                            Driver API Functions
  703. ;
  704. ;-------------------------------------------------------------------------------- 
  705. ;
  706. ;  Constants for printer gxViewDevice bitmaps. 
  707.  
  708. gxMissingImagePointer            EQU        -4
  709. ;
  710. ; extern OSErr GXAddPrinterViewDevice(gxPrinter thePrinter, gxViewDevice theViewDevice)
  711. ;
  712.     IF ¨ GENERATINGCFM THEN
  713.         Macro
  714.         _GXAddPrinterViewDevice
  715.             move.l              #$00020000,D0
  716.             dc.w                $ABFE
  717.         EndM
  718.     ELSE
  719.         IMPORT_CFM_FUNCTION GXAddPrinterViewDevice
  720.     ENDIF
  721.  
  722. ;
  723. ; extern OSErr GXGetAvailableJobFormatModes(gxJobFormatModeTableHdl *theFormatModes)
  724. ;
  725.     IF ¨ GENERATINGCFM THEN
  726.         Macro
  727.         _GXGetAvailableJobFormatModes
  728.             move.l              #$00020001,D0
  729.             dc.w                $ABFE
  730.         EndM
  731.     ELSE
  732.         IMPORT_CFM_FUNCTION GXGetAvailableJobFormatModes
  733.     ENDIF
  734.  
  735. ;
  736. ; extern OSErr GXSetPreferredJobFormatMode(gxJobFormatMode theFormatMode, Boolean directOnly)
  737. ;
  738.     IF ¨ GENERATINGCFM THEN
  739.         Macro
  740.         _GXSetPreferredJobFormatMode
  741.             move.l              #$00020002,D0
  742.             dc.w                $ABFE
  743.         EndM
  744.     ELSE
  745.         IMPORT_CFM_FUNCTION GXSetPreferredJobFormatMode
  746.     ENDIF
  747.  
  748.     ENDIF
  749.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  750. ;
  751. ; extern OSErr GXPrintingAlert(long iconId, long txtSize, long defaultTitleNum, long cancelTitleNum, long textLength, Ptr pAlertMsg, StringPtr actionTitle, StringPtr title2, StringPtr title3, StringPtr msgFont, ModalFilterUPP filterProc, short *itemHit, StringPtr alertTitle)
  752. ;
  753.     IF ¨ GENERATINGCFM THEN
  754.         Macro
  755.         _GXPrintingAlert
  756.             move.l              #$00020003,D0
  757.             dc.w                $ABFE
  758.         EndM
  759.     ELSE
  760.         IMPORT_CFM_FUNCTION GXPrintingAlert
  761.     ENDIF
  762.  
  763. ;
  764. ; extern OSErr GXGetPrintingAlert(long alertResId, ModalFilterUPP filterProc, short *itemHit)
  765. ;
  766.     IF ¨ GENERATINGCFM THEN
  767.         Macro
  768.         _GXGetPrintingAlert
  769.             move.l              #$00020004,D0
  770.             dc.w                $ABFE
  771.         EndM
  772.     ELSE
  773.         IMPORT_CFM_FUNCTION GXGetPrintingAlert
  774.     ENDIF
  775.  
  776.     ENDIF
  777.     IF FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE THEN
  778. ;
  779. ; extern OSErr GXFetchDTPData(Str31 dtpName, OSType theType, long theID, Handle *theData)
  780. ;
  781.     IF ¨ GENERATINGCFM THEN
  782.         Macro
  783.         _GXFetchDTPData
  784.             move.l              #$00020005,D0
  785.             dc.w                $ABFE
  786.         EndM
  787.     ELSE
  788.         IMPORT_CFM_FUNCTION GXFetchDTPData
  789.     ENDIF
  790.  
  791. ;
  792. ; extern OSErr GXWriteDTPData(Str31 dtpName, OSType theType, long theID, Handle theData)
  793. ;
  794.     IF ¨ GENERATINGCFM THEN
  795.         Macro
  796.         _GXWriteDTPData
  797.             move.l              #$00020006,D0
  798.             dc.w                $ABFE
  799.         EndM
  800.     ELSE
  801.         IMPORT_CFM_FUNCTION GXWriteDTPData
  802.     ENDIF
  803.  
  804.     ENDIF
  805.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  806. ;
  807. ; extern OSErr GXHandleChooserMessage(gxJob *aJob, Str31 driverName, long message, long caller, StringPtr objName, StringPtr zoneName, ListHandle theList, long p2)
  808. ;
  809.     IF ¨ GENERATINGCFM THEN
  810.         Macro
  811.         _GXHandleChooserMessage
  812.             move.l              #$00020007,D0
  813.             dc.w                $ABFE
  814.         EndM
  815.     ELSE
  816.         IMPORT_CFM_FUNCTION GXHandleChooserMessage
  817.     ENDIF
  818.  
  819.     ENDIF
  820.     ENDIF ; __GXPRINTERDRIVERS__ 
  821.  
  822.